The design of modern digital very-large-scale integration (VLSI) circuits increasingly relies on the circuit synthesis techniques. Even high-performance critical components that were conventionally implemented using custom design techniques (i.e., those based on schematic entry followed by placement and routing as opposed to synthesis which automates the design process beginning at the RTL level) are now being synthesized using advanced synthesis tools. Improving design productivity and enhancing design flexibility are just a few of the benefits of synthesis-centric design methodologies. However, the shift from custom design to synthesis requires that synthesis tools tackle more difficult designs. Furthermore, as technology scaling provides diminishing performance improvements in advanced nodes, there is a greater need to optimize the synthesis results to realize the performance goals of a chip.
Advanced synthesis tools provide a large number of knobs, settings, and parameters that can greatly impact the quality of results for a specific design. The number of tunable parameters in a synthesis tool can be on the order of hundreds or even thousands of options in some cases, e.g., the PDSrtl synthesis program from International Business Machines Corporation. See, for example, L. Trevillyan et al., “An Integrated Environment for Technology Closure of Deep-Submicron IC Designs,” IEEE Design & Test of Computers, vol. 21:1, pp. 14-22, January-February 2004. Quite often fine tuning many of these options is needed to achieve the quality of results needed for modern VLSI circuits. In fact, the modification of parameters can have such a large impact on the quality of results, that tuning synthesis parameters is one of the most effective approaches to design optimization. See, for example, M. M. Ziegler et al., “Power Reduction by Aggressive Synthesis Design Space Exploration,” IEEE International Symposium on Low Power Electronics and Design September 2013, (ISLPED13). In many cases, parameter tuning can lead to a wide range of quality of results, with a marked increase in quality achievable (over default synthesis results) by modifying synthesis parameters in terms of timing and power.
However, while varying parameter settings can have a large impact on the quality of results, the process of finding the correct parameter settings can often be tedious and non-intuitive for even experienced human designers. Novice designers often find manually trying to find correct parameter settings an even more daunting task.
Thus, techniques for automating the process of tuning synthesis parameters would be desirable.